yolo训练自己数据集anchors的选择

您所在的位置:网站首页 yolov3 anchor的数值设置 yolo训练自己数据集anchors的选择

yolo训练自己数据集anchors的选择

2023-11-20 12:28| 来源: 网络整理| 查看: 265

项目场景:

在训练yolo网络检测目标时,需要根据待检测目标的位置大小分布情况对anchor进行调整,使其检测效果尽可能提高。我们这时候不能直接使用COCO的anchors,自己可以重新聚类9组anchors。

问题描述:

Yolo为了训练COCO数据集准备了三组anchors,其对COCO数据集的检测有了提升。 ./models/yolo.yaml

anchors: #- [5,6, 7,9, 12,10] # P2/4 - [10,13, 16,30, 33,23] # P3/8 - [30,61, 62,45, 59,119] # P4/16 - [116,90, 156,198, 373,326] # P5/32 如果训练自己的数据集,自己的数据量没有coco数据集那么多,且数据信息没有那么丰富,并且anchor大小尺寸的分布不如coco数据集那样规律,比如:小目标检测,多目标检测。建议根据自己的数据集去聚类一份新的适合自己数据集的anchors。 ./utils/autoanchor.py/kmean_anchors def kmean_anchors(path='./data/coco.yaml', n=9, img_size=640, thr=4.0, gen=1000, verbose=True): 按照coco.yaml新建配置一个“目标.yaml”文件,里面设置好训练集路径;n=9,表示聚类9个点,这个不要改,img_size训练集图像大小,thr训练集目标长宽比例,可根据自己的待检测目标进行调整。 解决方案: 调整完成之后运行autoanchor.py发现并无输出,其原因是直接写入了模块,并没有显示出来。

在这里插入图片描述 我们可以打断点将其debug出来,打开./models/yolo.py找到其m.anchors,对其进行断点标注,然后debug yolo.py,步入cutoanchor.py文件,在调试器找到autoanchor.py,在变量中找到m的参数,其 anchor_grid为作者为COCO数据集设置的anchors。 在这里插入图片描述 然后data中的变量为聚类自己数据集的anchors。 在这里插入图片描述将其保存替换yolo.yaml文件中的anchors。

anchors: # - [5,6, 7,9, 12,10] # P2/4 # - [10,13, 16,30, 33,23] # P3/8 # - [30,61, 62,45, 59,119] # P4/16 #- [116,90, 156,198, 373,326] # P5/32 - [ 1.25000, 1.62500,2.00000, 3.75000,4.12500, 2.87500] - [ 1.87500, 3.81250,3.87500, 2.81250,3.68750, 7.43750] - [ 3.62500, 2.81250,4.87500, 6.18750,11.65625, 10.18750] 然后继续训练即可。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3